package com.tools.service.workflow;

import com.baomidou.mybatisplus.extension.service.IService;
import com.tools.pojo.workflow.bo.FlowNode;

import java.util.List;

public interface FlowNodeService extends IService<FlowNode> {

    /**
     * 根据流程定义ID查询节点
     * @param flowDefinitionId 流程定义ID
     * @return 节点列表
     */
    List<FlowNode> getNodesByFlowDefinitionId(Long flowDefinitionId);
    /**
     * 根据流程定义ID和节点代码查询节点
     * @param flowDefinitionId 流程定义ID
     * @param nodeCode 节点代码
     * @return 节点
     */
    FlowNode getNodeByCode(Long flowDefinitionId, String nodeCode);

     /**
      * 根据流程定义ID查询起始节点
      * @param flowDefinitionId 流程定义ID
      * @return 起始节点
      */
    FlowNode getStartNode(Long flowDefinitionId);

     /**
      * 根据流程定义ID查询结束节点
      * @param flowDefinitionId 流程定义ID
      * @return 结束节点
      */
    FlowNode getEndNode(Long flowDefinitionId);

     /**
      * 根据流程定义ID和节点类型查询节点
      * @param flowDefinitionId 流程定义ID
      * @param nodeType 节点类型
      * @return 节点列表
      */
    List<FlowNode> getNodesByType(Long flowDefinitionId, String nodeType);
}
